// miniprogram/pages/lucky-draw/join/index.js
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    title: '',
    totalCount: 0, // 总参与人数
    winnerCount: 0, // 中奖人数
    participants: [], // 参与者列表
    isDrawing: false, // 是否正在抽签
    showShareModal: false, // 是否显示分享弹窗
    avatar: '/assets/images/default-avatar.png',
    imageUrl: '/assets/images/share-poster.png',
    userInfo: null,
    hasUserInfo: false,
    canIUseGetUserProfile: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }

    // 获取全局用户信息
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUseGetUserProfile) {
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    }

    const eventChannel = this.getOpenerEventChannel();
    // 监听acceptDrawParams事件，获取上一个页面传递的参数
    eventChannel.on('acceptDrawParams', (data) => {
      console.log('接收到抽签参数：', data);
      
      // 生成模拟参与者数据
      const participants = this.generateParticipants(data.totalCount);
      
      this.setData({
        title: data.title,
        totalCount: data.totalCount,
        winnerCount: data.winnerCount,
        participants
      });
      
      // 显示分享弹窗
      this.showShareModal();
    });
  },

  /**
   * 生成模拟参与者数据
   */
  generateParticipants(count) {
    const names = [
      '张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '吴十',
      '郑十一', '王十二', '陈十三', '朱十四', '马十五', '胡十六', '林十七',
      '刘十八', '杨十九', '黄二十', '宋二一', '唐二二', '许二三', '何二四', 
      '陆二五', '孟二六', '高二七', '姜二八', '崔二九', '严三十'
    ];
    
    // 只生成符合UI原型图的头像样式
    return Array.from({ length: count }, (_, index) => {
      return {
        id: `user_${index + 1}`,
        name: names[index % names.length],
        // 由于SVG不支持，使用在线图片服务
        avatar: `https://placekitten.com/60/60?image=${index % 9 + 1}`,
        confirmed: Math.random() > 0.3 // 随机设置是否已确认
      };
    });
  },

  /**
   * 添加参与者
   */
  addParticipant() {
    // 如果当前参与人数已达上限，不再添加
    if (this.data.participants.length >= this.data.totalCount) {
      wx.showToast({
        title: '参与人数已达上限',
        icon: 'none',
        duration: 1500
      });
      return;
    }
    
    // 显示参与成功提示
    wx.showToast({
      title: '参与成功',
      icon: 'success',
      duration: 1500
    });
    
    // 生成新参与者
    const newParticipant = {
      id: `user_${this.data.participants.length + 1}`,
      name: '我',
      avatar: '/assets/images/default-avatar.png',
      confirmed: true
    };
    
    // 更新参与者列表
    this.setData({
      participants: [...this.data.participants, newParticipant]
    });
  },

  /**
   * 显示分享弹窗
   */
  showShareModal() {
    this.setData({
      showShareModal: true
    });
  },
  
  /**
   * 关闭分享弹窗
   */
  closeShareModal() {
    this.setData({
      showShareModal: false
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    console.log('参与抽签页面初次渲染完成');
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    // 关闭分享弹窗
    this.setData({
      showShareModal: false
    });
    
    return {
      title: `${this.data.title} - 抽签活动`,
      path: '/pages/index/index',
      imageUrl: '/assets/images/share-poster.png'
    };
  },

  getUserProfile() {
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
        app.globalData.userInfo = res.userInfo
      }
    })
  },
})